#!/bin/bash

# 停止所有 ReactIM 服务的脚本

echo "🛑 停止 ReactIM 服务..."

# 定义端口
USER_SERVICE_PORT=8081
MESSAGE_SERVICE_PORT=8082
FRONTEND_PORT=3000

# 函数：杀死指定端口的进程
kill_port() {
    local port=$1
    local service_name=$2
    
    echo "🔍 停止 $service_name (端口: $port)..."
    
    # 查找占用端口的进程
    local pid=$(lsof -ti:$port)
    
    if [ ! -z "$pid" ]; then
        echo "⚠️  正在终止进程 $pid..."
        kill -9 $pid
        sleep 1
        echo "✅ $service_name 已停止"
    else
        echo "ℹ️  $service_name 未运行"
    fi
}

# 停止所有服务
kill_port $USER_SERVICE_PORT "用户服务"
kill_port $MESSAGE_SERVICE_PORT "消息服务"
kill_port $FRONTEND_PORT "前端服务"

# 清理可能的 Maven 和 Node.js 进程
echo ""
echo "🧹 清理相关进程..."

# 杀死可能的 Maven 进程
pkill -f "spring-boot:run" 2>/dev/null && echo "✅ Maven 进程已清理" || echo "ℹ️  无 Maven 进程需要清理"

# 杀死可能的 Node.js 进程（只杀死 Vite 相关的）
pkill -f "vite" 2>/dev/null && echo "✅ Vite 进程已清理" || echo "ℹ️  无 Vite 进程需要清理"

echo ""
echo "✅ 所有服务已停止！"